<?php

class Citas extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->titulo = 'Citas';
        $this->datosusuario = $this->authentication->getDataLogged();
        $this->load->model('m_turno', 'turno');
        $this->load->model('M_Medico', 'medico');
    }

    /**
     * Listado de citas. Por ahora las q quiera listar, ya filtraremos...
     *
     * @return void
     * 
     */
    function index() {
        $data = array(
            'titulo' => 'Próximas Citas',
            'datosusuario' => $this->datosusuario,
            'turnos' => $this->turno->getProximasCitas(),
            'seleccionar' => 'citas',
        );
        $this->load->view('templates/header', $data);
        $this->load->view('templates/topbar');
        $this->load->view('citas/leftbar');
        $this->load->view('citas/index');
        $this->load->view('templates/footer');
    }

    function nuevo($matricula = '') {

        $this->load->model('m_medico', 'medico');
        if ($this->medico->get((int) $matricula)) {
            $medico = $this->medico;
        } else {
            redirect('citas/');
        }

        $this->form_validation->set_rules($this->turno->getValidacion());

        if ($this->form_validation->run() === FALSE) {


            if (isset($_POST['submit'])) {
                set_message(array('3' => validation_errors()));
                $cita = $_POST;
            } else {
                $cita = $this->turno->valoresPorDefecto();
            }

            $data = array(
                'titulo' => 'Nueva Cita', //. $this->titulo,
                'datosusuario' => $this->datosusuario,
                'cita' => $cita,
                'seleccionar' => 'citas',
                'medico' => $this->medico,
            );
            $this->load->view('templates/header', $data);
            $this->load->view('templates/topbar');
            $this->load->view('citas/leftbar');
            $this->load->view('citas/form');
            $this->load->view('templates/footer');
        } else {
            $this->turno->setAttributes($this->input);
            $this->turno->fecha = normal_to_database_datetime($_POST ['fecha'], $_POST ['hora']);
            $this->turno->usuarioId = $this->datosusuario['id'];
            $this->turno->id = null;
            $this->turno->save();
            
            set_message(array('info' => 'Se ha registrado correctamente la cita solicitada'));

            redirect('citas/');
        }
    }

    /**
     * Elimina una cita.
     *
     * @param integer $id El ID del usuario a eliminar.
     * @return void
     */
    function eliminar($id = '') {
        if ($id == '')
            redirect($this->redirect);

        if ($this->turno->get((int) $id)) {
            $this->turno->delete();
            set_message(array('1' => 'Se ha eliminado la cita indicada.'));
        }
        redirect('citas/');
    }

    function buscar_demandado_medico() {
        $medico = array();
        $this->load->model('m_demandado', 'demandado');
        $demandados_agregados = Array();
        if (isset($_POST['submit'])) {
            $where = array();
            if ($this->input->post('matricula') != '') {
                $where['matricula'] = $this->input->post('matricula');
            }
            if ($this->input->post('numeroDoc') != '') {
                $where['numeroDoc'] = $this->input->post('numeroDoc');
            }
            if ($this->input->post('nombre') != '') {
                $where['nombre like'] = '%' . $this->input->post('nombre') . '%';
            }

            $medico = $this->medico->getList($where);

            $demandados = $this->demandado->getList(array('causaId' => $this->datoscausa['id']));

            foreach ($demandados as $demandado) {
                $demandados_agregados[] = $demandado->matricula;
            }
        }


        $data = array(
            'titulo' => 'Lista de Médicos',
            'datosusuario' => $this->datosusuario,
            'datoscausa' => $this->datoscausa,
            'demandados_agregados' => $demandados_agregados,
            'medicos' => $medico,
            'seleccionar' => 'citas',
        );

        $this->load->view('templates/header', $data);
        $this->load->view('templates/topbar');
        $this->load->view('citas/leftbar');
        $this->load->view('citas/buscar_demandado_medico', $data);
        $this->load->view('templates/footer');
    }

}

